import request from '@/utils/request';
import type { BaseBeanModel, ResponsePageData, ResponseBaseData, QueryParamModel } from '@/api/model/baseModel';
const basePath = '/appsys/datapermissions/SysDataPermissionsDefRuleRest';
/** 默认规则维护 */
export interface SysDataPermissionsDefRuleDto extends BaseBeanModel {
  /** 规则名称 */
  ruleName?: string;
  /** 状态 */
  state?: string;
  /** 规则描述 */
  ruleRemarks?: string;
  /** 相邻匹配符 */
  matchSymbol?: string;
  /** 排序号 */
  orderBy?: number;
  /** 列名 */
  columnName?: string;
  /** 匹配符 */
  columnSymbol?: string;
  /** 类型 */
  columnType?: string;
  /** 列值 */
  columnValue?: string;
  /** 过滤条件 */
  filterCondition?: string;
  /** 过滤条件SQL */
  filterConditionSql?: string;
  /** 标识符 */
  identifier?: number;
  /** ATTRIBUTE_01 */
  attribute01?: string;
  /** ATTRIBUTE_02 */
  attribute02?: string;
  /** ATTRIBUTE_03 */
  attribute03?: string;
  /** ATTRIBUTE_04 */
  attribute04?: string;
  /** ATTRIBUTE_05 */
  attribute05?: string;
  /** ATTRIBUTE_06 */
  attribute06?: string;
  /** ATTRIBUTE_07 */
  attribute07?: string;
  /** ATTRIBUTE_08 */
  attribute08?: string;
  /** ATTRIBUTE_09 */
  attribute09?: string;
  /** ATTRIBUTE_10 */
  attribute10?: string;
}

/**
 * 获取分页数据
 * @param param 表格参数
 * @returns 表格数据
 */
export function listSysDataPermissionsDefRuleByPage(
  param: QueryParamModel
): Promise<ResponsePageData<SysDataPermissionsDefRuleDto>> {
  return request.post(`${basePath}/searchByPage/v1`, param);
}

/**
 * 根据id加载数据
 * @param id 选中数据id
 * @returns 详情数据
 */
export function getSysDataPermissionsDefRule(id: string): Promise<ResponseBaseData<SysDataPermissionsDefRuleDto>> {
  return request.get(`${basePath}/get/v1/${id}`);
}

/**
 * 保存表单数据
 * @param form 表单数据
 */
export function saveSysDataPermissionsDefRule(form: SysDataPermissionsDefRuleDto): Promise<ResponseBaseData<any>> {
  return request.post(`${basePath}/save/v1`, form);
}

/**
 * 编辑表单数据
 * @param form 表单数据
 */
export function updateSysDataPermissionsDefRule(form: SysDataPermissionsDefRuleDto): Promise<ResponseBaseData<any>> {
  return request.post(`${basePath}/updateSensitive/v1`, form);
}

/**
 * 根据id集合删除数据
 * @param ids 选中数据id集合
 */
export function delSysDataPermissionsDefRule(ids: string): Promise<ResponseBaseData<any>> {
  return request.post(`${basePath}/deleteById/v1`, ids);
}

/** 获取全部规则 */
export function getAllDefaultRule(): Promise<ResponseBaseData<any>> {
  return request.get(`${basePath}/getAllDefaultRule/v1`);
}
